#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdbool.h>
int g_val=0;
int un_val;
int main(int argc, char* argv[], char* env[])
{
 // pid_t id =fork();
 // if(id < 0)
 // {
 //   perror("error!");
 // }
 // else if(id == 0)
 // {
 //   // child
 //   while(true)
 //   {
 //     g_val = 300;
 //     printf("child:g_val:%d, &g_val:%p, pid: %d\n", g_val, &g_val, getpid());
 //     sleep(1);
 //   }
 // }
 // else{
 //   // father
 //   while(true)
 //   {
 //     printf("father:g_val:%d, &g_val:%p, pid: %d\n", g_val, &g_val, getpid());
 //     sleep(1);
 //   }
 // }
 // return 0;
  printf("text:%p\n", main);    // 代码区
  printf("un_val:%p\n", &un_val);
  printf("val:%p\n", &g_val);
  int *p = (int*) malloc(sizeof(int));
  int *p2 = (int*) malloc(sizeof(int));
  printf("heap1:%p\n", p);
  printf("heap2:%p\n", p2);
  int s1 = 10;
  int s2 = 20;
  static int s3 = 10;
  printf("test static: %p\n", &s3);
  printf("stack1: %p\n", &s1);
  printf("stack2: %p\n", &s2);    
  char* str = "hello world";
  printf("read only string:%p\n", str);
  for(int i=0;i<argc;i++)
  {
    printf("argv[%d]:%p\n", i, argv[i]);
  }
  for(int i=0; env[i];++i)
  {
    printf("env[%d]: %p\n", i, env[i]);
  }
}


